Computer networks are used extensively in many different configurations and in many different environments, from single host networks to networks connecting hosts in their hundreds, thousands, hundreds of thousands, and beyond.
Typically, hosts connect to a computer network through a network switch or router, and in large networks each switch or router may be connected in turn to further switches or routers. Such interconnected network topologies generally enable any host connected to the network to be able to send data to and receive data from any other host connected to the network. Hosts may include any suitable computing device.
However, since the bandwidth of any given computer network is limited by its physical characteristics it is possible for a host making excessive use of the available bandwidth to disrupt the network activities of other hosts. One way to prevent this is to use physically separate computer networks for different for types of data or applications, thereby ensuring that a host cannot disrupt the network traffic of other hosts. However, such an approach is generally costly and is difficult to implement.